// Material.h 
//////////////////////////////////////////////////////////////////////

#if !defined MATERIAL_H
#define MATERIAL_H

#include "SceneObject.h"
#include "Vec4.h"

class Material : public SceneObject
{
private:
    Vec4 ambient;
    Vec4 diffuse;
    Vec4 specular;
    Vec4 emission;
    float shininess;

public:
	Material();
	virtual ~Material();

	virtual RTTI_OBJECT_TYPE getType() const { return RTTI_MATERIAL; }

	// Force every child to have a render and update methods
	virtual void render(float timeElapsed);
	virtual void update(float timeElapsed);
	
	virtual void setAmbient(Vec4 v) { ambient = v; }
	virtual void setDiffuse(Vec4 v) { diffuse = v; }
	virtual void setSpecular(Vec4 v) { specular = v; }
	virtual void setEmission(Vec4 v) { emission = v; }
	virtual void setAmbient(float f) { shininess = f; }
};

#endif // MATERIAL_H
